<?php

/**
 * @string libraries function
 * @author: rock@onenix.net
 * @access public
 * @param string string we are operating with
 * @param integer character count to cut to
 * @param string|NULL delimiter. Default: '...'
 * @return string processed string
 **/
 
abstract class string {
	public static function ucfirst($string,$lower=false) {
		if($lower) {
			$string = mb_strtolower($string);
		}
		if(isset($string[0])) {
			$string[0] = mb_strtoupper($string[0]);
		}
    	return $string; 
	}
	public static function toAnsi($string) {
		#---------------------------------a^ 
		$string = str_replace("áº¥", "a", $string); 
		$string = str_replace("áº§", "a", $string); 
		$string = str_replace("áº©", "a", $string); 
		$string = str_replace("áº«", "a", $string); 
		$string = str_replace("áº­", "a", $string); 
		#---------------------------------A^ 
		$string = str_replace("áº¤", "A", $string); 
		$string = str_replace("áº¦", "A", $string); 
		$string = str_replace("áº¨", "A", $string); 
		$string = str_replace("áºª", "A", $string); 
		$string = str_replace("áº¬", "A", $string); 
		#---------------------------------a( 
		$string = str_replace("áº¯", "a", $string); 
		$string = str_replace("áº±", "a", $string); 
		$string = str_replace("áº³", "a", $string); 
		$string = str_replace("áºµ", "a", $string); 
		$string = str_replace("áº·", "a", $string); 
		#---------------------------------A( 
		$string = str_replace("áº®", "A", $string); 
		$string = str_replace("áº°", "A", $string); 
		$string = str_replace("áº²", "A", $string); 
		$string = str_replace("áº´", "A", $string); 
		$string = str_replace("áº¶", "A", $string); 
		#---------------------------------a 
		$string = str_replace("Ã¡", "a", $string); 
		$string = str_replace("Ã ", "a", $string); 
		$string = str_replace("áº£", "a", $string); 
		$string = str_replace("Ã£", "a", $string); 
		$string = str_replace("áº¡", "a", $string); 
		$string = str_replace("Ã¢", "a", $string); 
		$string = str_replace("Äƒ", "a", $string); 
		#---------------------------------A 
		$string = str_replace("Ã�", "A", $string); 
		$string = str_replace("Ã€", "A", $string); 
		$string = str_replace("áº¢", "A", $string); 
		$string = str_replace("Ãƒ", "A", $string); 
		$string = str_replace("áº ", "A", $string); 
		$string = str_replace("Ã‚", "A", $string); 
		$string = str_replace("Ä‚", "A", $string); 
		#---------------------------------e^ 
		$string = str_replace("áº¿", "e", $string); 
		$string = str_replace("á»�", "e", $string); 
		$string = str_replace("á»ƒ", "e", $string); 
		$string = str_replace("á»…", "e", $string); 
		$string = str_replace("á»‡", "e", $string); 
		#---------------------------------E^ 
		$string = str_replace("áº¾", "E", $string); 
		$string = str_replace("á»€", "E", $string); 
		$string = str_replace("á»‚", "E", $string); 
		$string = str_replace("á»„", "E", $string); 
		$string = str_replace("á»†", "E", $string); 
		#---------------------------------e 
		$string = str_replace("Ã©", "e", $string); 
		$string = str_replace("Ã¨", "e", $string); 
		$string = str_replace("áº»", "e", $string); 
		$string = str_replace("áº½", "e", $string); 
		$string = str_replace("áº¹", "e", $string); 
		$string = str_replace("Ãª", "e", $string); 
		#---------------------------------E 
		$string = str_replace("Ã‰", "E", $string); 
		$string = str_replace("Ãˆ", "E", $string); 
		$string = str_replace("áºº", "E", $string); 
		$string = str_replace("áº¼", "E", $string); 
		$string = str_replace("áº¸", "E", $string); 
		$string = str_replace("ÃŠ", "E", $string); 
		#---------------------------------i 
		$string = str_replace("Ã­", "i", $string); 
		$string = str_replace("Ã¬", "i", $string); 
		$string = str_replace("á»‰", "i", $string); 
		$string = str_replace("Ä©", "i", $string); 
		$string = str_replace("á»‹", "i", $string); 
		#---------------------------------I 
		$string = str_replace("Ã�", "I", $string); 
		$string = str_replace("ÃŒ", "I", $string); 
		$string = str_replace("á»ˆ", "I", $string); 
		$string = str_replace("Ä¨", "I", $string); 
		$string = str_replace("á»Š", "I", $string); 
		#---------------------------------o^ 
		$string = str_replace("á»‘", "o", $string); 
		$string = str_replace("á»“", "o", $string); 
		$string = str_replace("á»•", "o", $string); 
		$string = str_replace("á»—", "o", $string); 
		$string = str_replace("á»™", "o", $string); 
		#---------------------------------O^ 
		$string = str_replace("á»�", "O", $string); 
		$string = str_replace("á»’", "O", $string); 
		$string = str_replace("á»”", "O", $string); 
		$string = str_replace("Ã”", "O", $string); 
		$string = str_replace("á»˜", "O", $string); 
		#---------------------------------o* 
		$string = str_replace("á»›", "o", $string); 
		$string = str_replace("á»�", "o", $string); 
		$string = str_replace("á»Ÿ", "o", $string); 
		$string = str_replace("á»¡", "o", $string); 
		$string = str_replace("á»£", "o", $string); 
		#---------------------------------O* 
		$string = str_replace("á»š", "O", $string); 
		$string = str_replace("á»œ", "O", $string); 
		$string = str_replace("á»ž", "O", $string); 
		$string = str_replace("á» ", "O", $string); 
		$string = str_replace("á»¢", "O", $string); 
		#---------------------------------u* 
		$string = str_replace("á»©", "u", $string); 
		$string = str_replace("á»«", "u", $string); 
		$string = str_replace("á»­", "u", $string); 
		$string = str_replace("á»¯", "u", $string); 
		$string = str_replace("á»±", "u", $string); 
		#---------------------------------U* 
		$string = str_replace("á»¨", "U", $string); 
		$string = str_replace("á»ª", "U", $string); 
		$string = str_replace("á»¬", "U", $string); 
		$string = str_replace("á»®", "U", $string); 
		$string = str_replace("á»°", "U", $string); 
		#---------------------------------y 
		$string = str_replace("Ã½", "y", $string); 
		$string = str_replace("á»³", "y", $string); 
		$string = str_replace("á»·", "y", $string); 
		$string = str_replace("á»¹", "y", $string); 
		$string = str_replace("á»µ", "y", $string); 
		#---------------------------------Y 
		$string = str_replace("Ã�", "Y", $string); 
		$string = str_replace("á»²", "Y", $string); 
		$string = str_replace("á»¶", "Y", $string); 
		$string = str_replace("á»¸", "Y", $string); 
		$string = str_replace("á»´", "Y", $string); 
		#---------------------------------DD 
		$string = str_replace("Ä�", "D", $string); 
		$string = str_replace("Ä�", "D", $string); 
		$string = str_replace("Ä‘", "d", $string); 
		#---------------------------------o 
		$string = str_replace("Ã³", "o", $string); 
		$string = str_replace("Ã²", "o", $string); 
		$string = str_replace("á»�", "o", $string); 
		$string = str_replace("Ãµ", "o", $string); 
		$string = str_replace("á»�", "o", $string); 
		$string = str_replace("Ã´", "o", $string); 
		$string = str_replace("Æ¡", "o", $string); 
		#---------------------------------O 
		$string = str_replace("Ã“", "O", $string); 
		$string = str_replace("Ã’", "O", $string); 
		$string = str_replace("á»Ž", "O", $string); 
		$string = str_replace("Ã•", "O", $string); 
		$string = str_replace("á»Œ", "O", $string); 
		$string = str_replace("Ã”", "O", $string); 
		$string = str_replace("Æ ", "O", $string); 
		#---------------------------------u 
		$string = str_replace("Ãº", "u", $string); 
		$string = str_replace("Ã¹", "u", $string); 
		$string = str_replace("á»§", "u", $string); 
		$string = str_replace("Å©", "u", $string); 
		$string = str_replace("á»¥", "u", $string); 
		$string = str_replace("Æ°", "u", $string); 
		#---------------------------------U 
		$string = str_replace("Ãš", "U", $string); 
		$string = str_replace("Ã™", "U", $string); 
		$string = str_replace("á»¦", "U", $string); 
		$string = str_replace("Å¨", "U", $string); 
		$string = str_replace("á»¤", "U", $string); 
		$string = str_replace("Æ¯", "U", $string); 
		#---------------------------------XS
		return $string;
	}
	public static function toAlias($string) {
		$string = self::toAnsi($string);
		$string = trim(strtolower(preg_replace('/[^a-z0-9_]+/ism','-',$string)),'-');
		return $string;
	}
	public static function toIntro($string, $n, $suffix='...', $remove=true) {
		$length = mb_strlen($string,'utf-8');
		
		if($remove) {
			$string = strip_tags($string);
		}
		if ($length > $n) {
			$string = mb_substr($string,0,$n,'utf-8');
			$part = explode(' ',$string);
			array_pop($part);
			$string = implode(' ',$part).$suffix;
		}
		return $string;		
	}
	public static function toDate($string) {
		$date = null;
		if(preg_match('/[0-9]{2}[\/ -.]+[0-9]{2}[\/ -.]+[0-9]{4}/',$string,$matcher)) {
			$date = $matcher[0];
		}
		return $date;
	}
	public static function imageExtract($string,$default='') {
		$image = '';
		$regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im';
		
		if(preg_match ($regex, $string, $matches)) {
			$image = $matches[2];
		} else {
			$image = 'images/'.$default;
		}
		
		return $image;
	}
	/**
	 * Loáº¡i bá»� khoáº£ng tráº¯ng, xuá»‘ng dÃ²ng, tabs
	 * Giáº£m kÃ­ch thÆ°á»›c html sau khi rende
	 */
	public static function compress($string) {
		$string = preg_replace('/[\r\n]+/','',$string);
		$string = preg_replace('/[\r]+/','',$string);
		$string = preg_replace('/[\n]+/','',$string);
		$string = preg_replace('/[\t]+/','',$string);
		return $string;
	}
	public static function toNumber($string) {
		$number = null;
		if(preg_match('/(\d+)/',$string,$matcher)) {
			$number = (int) $matcher[1];
		}
		return $number;
	}
	/**
	 * Lá»�c sá»‘ trong chuá»—i
	 * @param	string 	$string
	 * @return	array	máº£ng cÃ¡c sá»‘ Ä‘Æ°á»£c lá»�c ra trong chuá»—i
	 */
	function toNumberArray($string) {
		$match  = array();
		$result = array();
		//if(preg_match_all('/([\d]+)|-([\d]+)/', $string, $match)) { // cho phÃ©p cáº£ sá»‘ Ã¢m
		if(preg_match_all('/([\d]+)/', $string, $match)) { // chá»‰ cho phÃ©p sá»‘ nguyÃªn dÆ°Æ¡ng
			$result = $match[0];
		}
		return $result;
	}
	
	public static function utf8_to_ascii($str)
	{
		$chars = array(
				'a'	=>	array('ấ','ầ','ẩ','ẫ','ậ','Ấ','Ầ','Ẩ','Ẫ','Ậ','ắ','ằ','ẳ','ẵ','ặ','Ắ','Ằ','Ẳ','Ẵ','Ặ','á','à','ả','ã','ạ','â','ă','Á','À','Ả','Ã','Ạ','Â','Ă'),
				'e' =>	array('ế','ề','ể','ễ','ệ','Ế','Ề','Ể','Ễ','Ệ','é','è','ẻ','ẽ','ẹ','ê','É','È','Ẻ','Ẽ','Ẹ','Ê'),
				'i'	=>	array('í','ì','ỉ','ĩ','ị','Í','Ì','Ỉ','Ĩ','Ị'),
				'o'	=>	array('ố','ồ','ổ','ỗ','ộ','Ố','Ồ','Ổ','Ô','Ộ','ớ','ờ','ở','ỡ','ợ','Ớ','Ờ','Ở','Ỡ','Ợ','ó','ò','ỏ','õ','ọ','ô','ơ','Ó','Ò','Ỏ','Õ','Ọ','Ô','Ơ'),
				'u'	=>	array('ứ','ừ','ử','ữ','ự','Ứ','Ừ','Ử','Ữ','Ự','ú','ù','ủ','ũ','ụ','ư','Ú','Ù','Ủ','Ũ','Ụ','Ư'),
				'y'	=>	array('ý','ỳ','ỷ','ỹ','ỵ','Ý','Ỳ','Ỷ','Ỹ','Ỵ'),
				'd'	=>	array('đ','Đ'),
		);
		foreach ($chars as $key => $arr)
			$str = str_replace($arr, $key, $str);
	
		return $str;
	}
	
	/**
	 * Tạo link không dấu để SEO
	 * @author 	Nguyen Xuan Hung
	 * @data	02.03.2011
	 */
	public static function ascii_link($title = '', $char = '-')
	{
		$name = strtolower(self::utf8_to_ascii($title));
		$name = preg_replace("/[^a-z0-9]/i", ' ', $name);// a-z - . space
		$name = preg_replace("/\s{2,}/i" , ' ', trim($name));// Replace 2 or more space = 1 space
		$name = str_replace(' ', $char, $name);
		return $name;
	}
}

?>